1. Field of the Invention
The present invention relates generally to the display of text in a graphical user interface, and more particularly, to a system and method for rapidly displaying text in a graphical user interface.
2. Description of Background Art
In many applications it is useful rapidly to render large amounts of text on a display screen. Such applications include, for example, graphical user interfaces wherein the user navigates through a simulated three-dimensional environment. The environment is typically filled with objects and surfaces, often including explanatory text which accompanies or appears to be written on such objects and surfaces. As the user navigates through the environment, the text may move, and change size, orientation, or appearance. In order to maintain the illusion of real-time movement and navigation, it is important that all objects in the three-dimensional environment be rendered quickly to react to the user's movement. Thus, any on-screen text must be able to be displayed quickly at various sizes and orientations while preserving its essential characteristics.
There are many well-known techniques for displaying text on a screen. One such technique involves storage of a bitmap for each character in a character set for a particular font (where a font is defined as a particular typeface, size, and style, such as, for example, 12-point bold Palatino). In such systems, individual characters are displayed on the screen by accessing the bitmap for each desired letter, and turning on or off individual pixels on the screen according to the bitmap. A disadvantage of such a technique is that it requires storing and loading a distinct set of bitmaps for each font, which consumes system resources and can slow down the display of text, particularly if a large number of different fonts are used. In addition, an interpretation engine must usually be provided to read the bitmaps, process them, and render them onto the screen; this process may take a considerable amount of time when a large quantity of text is to be displayed. Display may be even slower if bitmaps must be individually loaded from data storage as needed.
Other known techniques involve defining each character using a type description language such as TrueType.RTM., which describes the character in terms of its component parts, such as for example, a collection of Bezier curves. Such languages permit the shapes of the letters to be preserved when scaled at various sizes, so that a single representation of each letter can be stored in lieu of multiple representations for different sizes. Although such techniques permit text to be described in a relatively small amount of storage space, they still require an interpretation engine to convert the type descriptions into an on-screen representation for display, particularly when rendering is to be performed by modestly-powered conventional personal computers. Such limitations make type description languages unusable for displaying large amounts of text quickly enough for applications such as moving three-dimensional environments.
What is needed is a system and method of displaying text on a screen that permits large amounts of text to be rendered relatively quickly without consuming an excessive amount of system resources.